package br.edu.utfpr.view.action;

import java.util.ArrayList;
import java.util.List;

import br.edu.utfpr.app.beans.Produto;
import br.edu.utfpr.app.dto.ProdutoDTO;
import br.edu.utfpr.controller.ControladorProdutoImpl;
import br.edu.utfpr.controller.interfaces.ControladorProduto;
import br.edu.utfpr.controller.validator.ProdutoValidator;
import br.edu.utfpr.controller.validator.RetornoValidacao;
import br.edu.utfpr.dao.DaoProdutoImpl;
import br.edu.utfpr.dao.interfaces.DaoProduto;

public class ActionProduto extends Action<Produto>{
	
	DaoProduto dao = new DaoProdutoImpl();
	ControladorProduto c = new ControladorProdutoImpl(dao, new ProdutoValidator());
	
	@Override
	public RetornoValidacao salvar(Produto pojo) {
		return c.save(pojo);
	}

	@Override
	public RetornoValidacao excluir(Produto pojo) {
		try {
			c.excluir(pojo);
			return new RetornoValidacao();
		} catch (Exception e) {
			return new RetornoValidacao("Ocorreu um erro ao excluir o Produto");
		}
	}

	@Override
	public List<ProdutoDTO> listar() {
		List<ProdutoDTO> lista = new ArrayList<ProdutoDTO>();
		
		for (Produto p : c.list()) {
			lista.add(p.parseDTO());
		}
		
		return lista;
	}

}
